// #include <stdio.h>

// int main() {
//     // 打开 Excel 文件
//     FILE *fp = fopen("/Users/ed/Desktop/team-building-games/单位分析/优势区间问题.xlsx", "r");
//     if (!fp) {
//         printf("Failed to open file\n");
//         return 1;
//     }

//     // 获取第一个工作表
//     fseek(fp, 0, SEEK_SET);
//     int row_count = 0;
//     int col_count = 0;
//     char buf[1024];
//     while (fgets(buf, sizeof(buf), fp)) {
//         row_count++;
//         int i = 0;
//         while (buf[i]) {
//             if (buf[i] == '\t') {
//                 col_count++;
//             }
//             i++;
//         }
//     }
//     col_count /= row_count;
//     fclose(fp);

//     // 遍历工作表中的所有单元格
//     fp = fopen("/Users/ed/Desktop/team-building-games/单位分析/优势区间问题.xlsx", "r");
//     if (!fp) {
//         printf("Failed to open file\n");
//         return 1;
//     }
//     for (int i = 0; i < row_count; i++) {
//         for (int j = 0; j < col_count; j++) {
//             fscanf(fp, "%s", buf);
//             printf("%s\t", buf);
//         }
//         printf("\n");
//     }
//     fclose(fp);

//     // 计算 DPS 值
//     int t = 0, count = 0, 护甲 = 17;
//     scanf("t=%d", &t);
//     if (t < 260) {
//         // do nothing
//     } else if (t < 400) {
//         护甲 += 3;
//     } else {
//         护甲 += 6;
//     }
//     int 开技能时间 = 300;
//     if (t >= 开技能时间 && t < 开技能时间 + 60) {
//         护甲 += 5;
//     }
//     int dps = 护甲 * 10;
//     printf("DPS = %d\n", dps);

//     return 0;
// }

// int 步兵攻击力 = 0;
// int 护甲 ; // 假设建筑护甲为20
// int 射速 = 2; // 假设射速为2

// switch (步兵攻击力) {
//     case 1:"迫击炮步兵":步兵攻击力 == 建筑伤害;break;
//     case 2:"99式步兵":步兵攻击力 == 建筑伤害;break;
//     case 3:"11式轻机枪手":步兵攻击力 == 建筑伤害;break;
//     case 4:"反坦克步枪步兵":步兵攻击力 == 建筑伤害;break;
//         步兵攻击力 = 建筑伤害;
//         break;
// }

// int 单次伤害 = 步兵攻击力 - 护甲;
// int DPS = 单次伤害 / 射速;

// printf("DPS = %d\n", DPS);


#include <stdio.h>
#include <errno.h>
#include <string.h>

void discardLine(FILE *fp) {
    char buf[1024];
    fgets(buf, sizeof(buf), fp); // 读取一行并丢弃
}

void cleanup(FILE *fp) {
    fclose(fp);
}

int main() {
    // 打开 Excel 文件
    FILE *fp = fopen("/Users/ed/Desktop/team-building-games/单位分析/优势区间问题/优势区间问题表格.xlsx", "r");
    if (!fp) {
        printf("Failed to open file: %s\n", strerror(errno));
        return 1;
    }

    // 跳过表头
    discardLine(fp);

    char buf[1024];
    // 逐行读取文件夹内表格数据
    while (fgets(buf, sizeof(buf), fp)) {
        char 单位[50];
        int 生命值, 护甲, 伤害, 建筑伤害, 射速;

        // 使用 sscanf 解析每一行的数据
        sscanf(buf, "%s %d %d %d %*d %*d %d %*f %d", 单位, &生命值, &护甲, &伤害, &建筑伤害, &射速);

        // 计算 DPS
        int 单次伤害 = 建筑伤害 - 护甲;
        int DPS = 单次伤害 / 射速;

        printf("单位: %s, DPS: %d\n", 单位, DPS);
    }

    // 关闭文件
    cleanup(fp);

    return 0;
}

